Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a surface modeling technique in which surface definitions define a model. Another modeling technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by edges. Hereinafter, the terms vertex, edge, and face will be used interchangeably with their respective, corresponding geometric entities. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. One feature of many commercially available 3D CAD systems enables a design engineer to create a 3D CAD model by constructing one or more surfaces and then modifying the surfaces to achieve a desired shape of the 3D model or portion thereof. Several techniques have been implemented by current state of the art 3D CAD systems to construct and modify surface models. For example, U.S. Pat. No. 6,639,592 to Dayanand et al discloses using multiple curves to create a surface, where each curve has a specified amount of influence (i.e., small, medium, and large amount of influence) on the shape of the resulting surface. Other examples are the sub-divisional modeling approach where the user individually moves vertices of an underlying cage to influence the shape of a resulting surface, and lofting techniques to create surfaces from curves. Yet another example is an approach implemented in SolidWorks® 2012, which modifies faces of surface and solid bodies by enabling a user to create control curves and control points on a surface and manipulate those control curves and control points to modify a face, thereby giving the user direct, interactive control of deforming a model.
In many CAD systems, curves and surfaces are generally represented as analytical or spline curves and surfaces (e.g., Bezier curves and surfaces), and in particular as non-uniform rational b-spline (NURBS) curves and surfaces. Additionally, some CAD systems utilize tessellated models whereby the surfaces of a model are faceted by sub-dividing each surface into triangular or other polygonal shapes; hereinafter such a surface shall be referred to as a subdivision surface. Subdivision surfaces may be used to define solid and surface models.
Current approaches to modifying a surface include changing the location of one or more control points that may or may not pass through the surface, after which the surface is recalculated using the control points' new locations as input to the surface calculation. Some approaches enable only one control point to be modified at a time, for example, by interactively pulling the point in one direction or another (e.g., using a cursor-controlled device or touch-screen technology), after which the surface is recalculated. If the design engineer is not satisfied with the shape of the recalculated surface, the control point or another control point is re-positioned and then the surface is recalculated once again. This iterative process may be time-consuming and cumbersome. Other approaches allow one or more faces or edges of a solid model to be moved together after a group selection of those faces or edges, which may also require an iterative process that is time-consuming and cumbersome. (The one or more faces may correspond to an entire surface or one or more subdivisions of a surface.)
Procedures for creating and modifying surfaces may be tedious and not intuitive. For example, control points may have assigned weights that determine the influence of the position of each respective control point on a curve or surface, and thereby, the shape of the curve or surface does not exactly align to the control points. Thus, the design engineer may visualize a shape of an object; however, to create that shape in a CAD system may require numerous steps to specify the shape in a piecemeal fashion, an intuitively opposite approach because a surface is iteratively modified until the desired shape is achieved rather than creating the desired shape first and having the surface created to align to the shape.
Currently available technologies fall short of solutions to the problem of moving one control point or group of control points at a time to achieve a pre-conceived shape. Methods later to be described herein solve this problem and allow for time-saving advantages and enhancements to current CAD systems.